package tirateima.controlador;

import java.util.ArrayList;
import java.util.List;


/**
 * Comando de criação de variável.
 * 
 * @author Luciano Santos
 */
public class CommandNewVar extends Command {
	private VarDefinition ref;
	
	public CommandNewVar(VarDefinition ref) {
		this.ref = ref;
	}
	/**
	 * Executa o comando de criação de variável adicionando a nova variável ao mostrador
	 */
	@Override
	public void execute(Controlador c)
			throws TiraTeimaLanguageException {
/*		if (ref.getIndex() != null) {
			if (ref.getIndex().firstVariavel != null) {
				List<Object> vars = new ArrayList<Object>();
				vars.add(ref.getIndex().firstVariavel);
				Object value = getValue(c, vars);
				if ((value != null) && (value instanceof Integer)) {
					ref.getIndex().first = Integer.valueOf(value.toString());
					ref.getIndex().firstVariavel = "";
				}
					
			}
		}*/
		c.mostrador.adicionarVariavel(newVar(c, ref));
	}
	
	/**
	 * Desfaz o comando de criação de variável removendo a nova variável do mostrador
	 */
	@Override
	public void revert(Controlador c) throws TiraTeimaLanguageException,
			ExecutionException {
		c.mostrador.removerVariavel(ref.getName());		
	}
}
